파이썬 알고리즘 인터뷰 [파이썬 알고리즘 인터뷰] 배열 - 세 수의 합 🐍 문제 배열을 입력받아 합으로 0을 만들 수 있는 3개의 엘리먼트를 출력하라. 입력 nums = [-1, 0, 1, 2, -1, -4] 출력 🐍 내 풀이 이런 방법밖에 생각이 안난다.. 슬프다... 🐍 교재 풀이1 - 브루트 포스로 계산 똑같이 모든 리스트의 값을 세번 반복하여 값을 확인하지만 조금이라도 시간을 줄이기 위해 정렬하고 앞뒤로 동일한 값을 제외한다(값이 동일하다면 똑같은 리스트... python코딩테스트파이썬 알고리즘 인터뷰python [알고리즘] 부분 집합 DFS파이썬 알고리즘 인터뷰알고리즘DFS [알고리즘] 페어의 노드 스왑 처음에는 노드 자체를 스왑해야한다는 생각에 사로 잡혀서 값만 바꿀 생각을 하지 못했다. 사실 값만 바꾸는 풀이는 정석적인 풀이가 아니다. 노드가 단순한 구조가 아니라면 복잡할 것이다. 복잡해 보이지만 그림을 그려가며 이해하면 충분히 따라 갈 수 있다.... 알고리즘파이썬 알고리즘 인터뷰링크드리스트링크드리스트 [3부 선형 자료구조] 7장 배열 📌 7) 두 수의 합 ( ) ✔ 풀이 (브루트 포스) => 시간 복잡도 O(n2) ✔ 풀이 (in을 이용한 탐색) => 시간 복잡도 O(n2) , 하지만 in은 파이썬 레벨에서 매번 값을 비교하는 것에 비해 훨씬 더 빨리 실행됨. ✔ 풀이 (첫 번째 수를 뺀 결과 키 조회) => 딕셔너리는 해시 테이블로 구현되어 있고, 이 경우 조회는 평균적으로 O(1)에 가능. =>분할 상환 분석에 따른 ... 파이썬 알고리즘 인터뷰pythonpython [3부 선형 자료구조] 10장 데크, 우선순위 큐 📌 26) 원형 데크 디자인 ( ) ✔ 풀이 📌 27) k개 정렬 리스트 병합 ( ) ✔ 풀이... 파이썬 알고리즘 인터뷰pythonpython [파이썬 알고리즘 인터뷰] 배열 - 배열 파티션1 🐍 문제 n개의 페어를 이용한 min(a, b)의 합으로 만들 수 있는 가장 큰 수를 출력하라. 입력 출력 n은 2가 되며, 최대 합은 4이다. min(1, 2) + min(3, 4) = 4 🐍 내 풀이 - 오름차순 이용 투 페어의 작은 값들의 합이 가장 커야하므로 작은 값끼리 모아둘 수 있도록 오름차순 정렬 후 순서대로 최솟값을 구하였다. 🐍 교재 풀이1 - 오름차순 풀이 똑같이 오름차순 ... 파이썬 알고리즘 인터뷰코딩테스트pythonpython [알고리즘] 역순 연결 리스트 주어진 링크드리스트를 순서대로 따라가며 리스트에 숫자들을 저장해 놓는다. 그것을 뒤집어서 거꾸로 링크드리스트를 새로 만든다. 다음 노드 next와 현재 노드 node를 파라미터로 지정한 함수를 계속해서 재귀 호출한다. node.next에는 이전 prev 리스트를 계속 연결해주면서 node가 None이 될 때까지 재귀 호출하면 마지막에는 백트랙킹되면서 연결 리스트가 거꾸로 연결된다. 여기에 맨... 알고리즘파이썬 알고리즘 인터뷰연결리스트알고리즘 [3부 선형 자료구조] 11장 해시 테이블 📌 28) 해시맵 디자인 ( ) ✔ 풀이 📌 29) 보석과 돌 ( ) ✔ 풀이 (해시 테이블을 이용한 풀이) ✔ 풀이 (defaultdict을 이용한 비교 생략) ✔ 풀이 (Counter로 계산 생략) ✔ 풀이 (Pythonic Way) 📌 30) 중복 문자 없는 가장 긴 부분 문자열 ( ) ✔ 풀이 (리스트) ✔ 풀이 (슬라이딩 윈도우 & 투 포인터) 📌 31) 상위 K 빈도 요소 ( ) ... 파이썬 알고리즘 인터뷰pythonpython [알고리즘] 싱글 넘버 XOR 연산자는 비트단위에서 다르면 1, 같으면 0을 반환한다. 0과 숫자 A를 XOR을 하면 처음 등장할 때는 A가 남고, A가 한번 더 등장하면 0이 된다.... 알고리즘파이썬 알고리즘 인터뷰비트 연산비트 연산
[파이썬 알고리즘 인터뷰] 배열 - 세 수의 합 🐍 문제 배열을 입력받아 합으로 0을 만들 수 있는 3개의 엘리먼트를 출력하라. 입력 nums = [-1, 0, 1, 2, -1, -4] 출력 🐍 내 풀이 이런 방법밖에 생각이 안난다.. 슬프다... 🐍 교재 풀이1 - 브루트 포스로 계산 똑같이 모든 리스트의 값을 세번 반복하여 값을 확인하지만 조금이라도 시간을 줄이기 위해 정렬하고 앞뒤로 동일한 값을 제외한다(값이 동일하다면 똑같은 리스트... python코딩테스트파이썬 알고리즘 인터뷰python [알고리즘] 부분 집합 DFS파이썬 알고리즘 인터뷰알고리즘DFS [알고리즘] 페어의 노드 스왑 처음에는 노드 자체를 스왑해야한다는 생각에 사로 잡혀서 값만 바꿀 생각을 하지 못했다. 사실 값만 바꾸는 풀이는 정석적인 풀이가 아니다. 노드가 단순한 구조가 아니라면 복잡할 것이다. 복잡해 보이지만 그림을 그려가며 이해하면 충분히 따라 갈 수 있다.... 알고리즘파이썬 알고리즘 인터뷰링크드리스트링크드리스트 [3부 선형 자료구조] 7장 배열 📌 7) 두 수의 합 ( ) ✔ 풀이 (브루트 포스) => 시간 복잡도 O(n2) ✔ 풀이 (in을 이용한 탐색) => 시간 복잡도 O(n2) , 하지만 in은 파이썬 레벨에서 매번 값을 비교하는 것에 비해 훨씬 더 빨리 실행됨. ✔ 풀이 (첫 번째 수를 뺀 결과 키 조회) => 딕셔너리는 해시 테이블로 구현되어 있고, 이 경우 조회는 평균적으로 O(1)에 가능. =>분할 상환 분석에 따른 ... 파이썬 알고리즘 인터뷰pythonpython [3부 선형 자료구조] 10장 데크, 우선순위 큐 📌 26) 원형 데크 디자인 ( ) ✔ 풀이 📌 27) k개 정렬 리스트 병합 ( ) ✔ 풀이... 파이썬 알고리즘 인터뷰pythonpython [파이썬 알고리즘 인터뷰] 배열 - 배열 파티션1 🐍 문제 n개의 페어를 이용한 min(a, b)의 합으로 만들 수 있는 가장 큰 수를 출력하라. 입력 출력 n은 2가 되며, 최대 합은 4이다. min(1, 2) + min(3, 4) = 4 🐍 내 풀이 - 오름차순 이용 투 페어의 작은 값들의 합이 가장 커야하므로 작은 값끼리 모아둘 수 있도록 오름차순 정렬 후 순서대로 최솟값을 구하였다. 🐍 교재 풀이1 - 오름차순 풀이 똑같이 오름차순 ... 파이썬 알고리즘 인터뷰코딩테스트pythonpython [알고리즘] 역순 연결 리스트 주어진 링크드리스트를 순서대로 따라가며 리스트에 숫자들을 저장해 놓는다. 그것을 뒤집어서 거꾸로 링크드리스트를 새로 만든다. 다음 노드 next와 현재 노드 node를 파라미터로 지정한 함수를 계속해서 재귀 호출한다. node.next에는 이전 prev 리스트를 계속 연결해주면서 node가 None이 될 때까지 재귀 호출하면 마지막에는 백트랙킹되면서 연결 리스트가 거꾸로 연결된다. 여기에 맨... 알고리즘파이썬 알고리즘 인터뷰연결리스트알고리즘 [3부 선형 자료구조] 11장 해시 테이블 📌 28) 해시맵 디자인 ( ) ✔ 풀이 📌 29) 보석과 돌 ( ) ✔ 풀이 (해시 테이블을 이용한 풀이) ✔ 풀이 (defaultdict을 이용한 비교 생략) ✔ 풀이 (Counter로 계산 생략) ✔ 풀이 (Pythonic Way) 📌 30) 중복 문자 없는 가장 긴 부분 문자열 ( ) ✔ 풀이 (리스트) ✔ 풀이 (슬라이딩 윈도우 & 투 포인터) 📌 31) 상위 K 빈도 요소 ( ) ... 파이썬 알고리즘 인터뷰pythonpython [알고리즘] 싱글 넘버 XOR 연산자는 비트단위에서 다르면 1, 같으면 0을 반환한다. 0과 숫자 A를 XOR을 하면 처음 등장할 때는 A가 남고, A가 한번 더 등장하면 0이 된다.... 알고리즘파이썬 알고리즘 인터뷰비트 연산비트 연산